{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##  Numpy常用random随机函数汇总"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "官方文档地址：https://docs.scipy.org/doc/numpy-1.14.0/reference/routines.random.html\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src=\"./other_files/numpy_random_functions.png\" width=\"80%\" style=\"margin-left:0px\"/>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "np.random.seed(666)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1. rand(d0, d1, ..., dn)\n",
    "\n",
    "返回数据在[0, 1)之间，具有均匀分布"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "array([0.70043712, 0.84418664, 0.67651434, 0.72785806, 0.95145796])"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 3
    }
   ],
   "source": [
    "np.random.rand(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "array([[0.0127032 , 0.4135877 , 0.04881279, 0.09992856],\n       [0.50806631, 0.20024754, 0.74415417, 0.192892  ],\n       [0.70084475, 0.29322811, 0.77447945, 0.00510884]])"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 4
    }
   ],
   "source": [
    "np.random.rand(3, 4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "array([[[0.11285765, 0.11095367, 0.24766823, 0.0232363 ],\n        [0.72732115, 0.34003494, 0.19750316, 0.90917959],\n        [0.97834699, 0.53280254, 0.25913185, 0.58381262]],\n\n       [[0.32569065, 0.88889931, 0.62640453, 0.81887369],\n        [0.54734542, 0.41671201, 0.74304719, 0.36959638],\n        [0.07516654, 0.77519298, 0.21940924, 0.07934213]]])"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 5
    }
   ],
   "source": [
    "np.random.rand(2, 3, 4)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2. randn(d0, d1, ..., dn)\n",
    "返回数据具有标准正态分布（均值0，方差1）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "array([-1.20990266, -0.04618272, -0.44118244,  0.46953431,  0.44325817])"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 6
    }
   ],
   "source": [
    "np.random.randn(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "array([[-1.66738875, -1.81731749, -1.39753916,  0.78392691],\n       [-0.29129965,  0.67049043,  0.706931  ,  1.42965241],\n       [-0.41407013, -1.32672274, -0.14880188,  0.34771289]])"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 7
    }
   ],
   "source": [
    "np.random.randn(3, 4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "array([[[ 0.61030791, -1.17532603,  0.82985368, -0.30236752],\n        [-0.04327047,  0.06706965, -1.59102817,  0.01705112],\n        [-1.87296591, -0.96457904, -0.00420389,  0.47495047]],\n\n       [[-0.05421452,  0.89181355,  0.96866859,  0.6307865 ],\n        [-0.89051986,  0.08227022, -0.07594056,  0.42969347],\n        [ 0.11579967, -0.54443241,  0.02835341,  1.34408655]]])"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 8
    }
   ],
   "source": [
    "np.random.randn(2, 3, 4)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3. randint(low[, high, size, dtype])\n",
    "\n",
    "生成随机整数，包含low，不包含high  \n",
    "如果high不指定，则从[0, low)中生成数字"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "2"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 9
    }
   ],
   "source": [
    "np.random.randint(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "1"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 10
    }
   ],
   "source": [
    "np.random.randint(1, 10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "array([27, 16, 25, 18, 18])"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 11
    }
   ],
   "source": [
    "# 使用元组进行指定，生成一维数组\n",
    "np.random.randint(10, 30, size=(5,))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "array([[[26, 19, 14, 21],\n        [29, 25, 19, 21],\n        [28, 12, 13, 19]],\n\n       [[27, 27, 18, 27],\n        [16, 24, 16, 19],\n        [21, 20, 19, 14]]])"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 12
    }
   ],
   "source": [
    "np.random.randint(10, 30, size=(2,3,4))"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4. random([size])\t\n",
    "生成[0.0, 1.0)的随机数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "array([0.95858105, 0.66579831, 0.84015904, 0.14691185, 0.14394403])"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 13
    }
   ],
   "source": [
    "np.random.random(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "array([[0.30843116, 0.37016398, 0.31852964, 0.56240025],\n       [0.4640979 , 0.80066784, 0.78735522, 0.84323067],\n       [0.68824287, 0.31854825, 0.93794112, 0.40711455]])"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 14
    }
   ],
   "source": [
    "np.random.random(size=(3,4))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "array([[[0.75336448, 0.5065076 , 0.8242313 , 0.48603164],\n        [0.17872445, 0.79322194, 0.13924006, 0.71347858],\n        [0.38300909, 0.70410853, 0.82867258, 0.58154578]],\n\n       [[0.38693726, 0.39648041, 0.15039198, 0.08835265],\n        [0.80002064, 0.86760024, 0.88654384, 0.76250128],\n        [0.2158761 , 0.60311702, 0.17688438, 0.15759693]]])"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 15
    }
   ],
   "source": [
    "np.random.random(size=(2,3,4))"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 5. choice(a[, size, replace, p])\n",
    "a是一维数组，从它里面生成随机结果\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "array([4, 2, 4])"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 16
    }
   ],
   "source": [
    "# 这时候，a是数字，则从range(5)中生成，size为3\n",
    "np.random.choice(5, 3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "array([[3, 3, 2],\n       [4, 0, 2]])"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 17
    }
   ],
   "source": [
    "np.random.choice(5, (2,3))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "array([3, 9, 6])"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 18
    }
   ],
   "source": [
    "# 这时候，a是数组，从里面随机取出数字\n",
    "np.random.choice([2, 3, 6, 7, 9], 3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "array([[7, 9, 2],\n       [6, 9, 6]])"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 19
    }
   ],
   "source": [
    "np.random.choice([2, 3, 6, 7, 9], (2,3))"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 6. shuffle(x)\t\n",
    "把一个数组x进行随机排列"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "array([7, 2, 3, 6, 1, 9, 8, 4, 0, 5])"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 20
    }
   ],
   "source": [
    "a = np.arange(10)\n",
    "np.random.shuffle(a)\n",
    "a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "array([[ 0,  1,  2,  3,  4],\n       [ 5,  6,  7,  8,  9],\n       [10, 11, 12, 13, 14],\n       [15, 16, 17, 18, 19]])"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 21
    }
   ],
   "source": [
    "a = np.arange(20).reshape(4,5)\n",
    "a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "array([[10, 11, 12, 13, 14],\n       [ 0,  1,  2,  3,  4],\n       [15, 16, 17, 18, 19],\n       [ 5,  6,  7,  8,  9]])"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 22
    }
   ],
   "source": [
    "# 如果数组是多维的，则只会在第一维度打散数据\n",
    "# 按照行进行打散，列不变\n",
    "np.random.shuffle(a)\n",
    "a"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 7. permutation(x)\n",
    "把一个数组x进行随机排列，或者数字的全排列"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "array([1, 5, 3, 0, 2, 4, 7, 9, 6, 8])"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 23
    }
   ],
   "source": [
    "# 这时候，生成range(10)的随机排列\n",
    "np.random.permutation(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "array([[0, 1, 2],\n       [3, 4, 5],\n       [6, 7, 8]])"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 24
    }
   ],
   "source": [
    "# 这时候，在第一维度进行打散\n",
    "arr = np.arange(9).reshape((3, 3))\n",
    "arr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "array([[6, 7, 8],\n       [3, 4, 5],\n       [0, 1, 2]])"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 25
    }
   ],
   "source": [
    "# 注意，这里不会更改原来的arr，会返回一个新的copy\n",
    "np.random.permutation(arr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "array([[0, 1, 2],\n       [3, 4, 5],\n       [6, 7, 8]])"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 26
    }
   ],
   "source": [
    "arr"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 8. normal([loc, scale, size])\n",
    "按照平均值loc和方差scale生成高斯分布的数字"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "array([ 10.80291099,  13.10516541, -23.0910327 ,  14.49409934,\n        -6.290444  ,  -9.42735397,  -2.28926527, -13.71681338,\n       -13.04515295,  -5.32726848])"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 27
    }
   ],
   "source": [
    "np.random.normal(1, 10, 10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "array([[  3.00692005,   2.62218924,   2.60682046,  13.11370959],\n       [-12.63957919,   2.30310161,  13.59875359,  10.79500364],\n       [ 18.37674494, -13.17309889,  -3.82004022, -20.47660377]])"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 28
    }
   ],
   "source": [
    "np.random.normal(1, 10, (3,4))"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 9. uniform([low, high, size]) \t\n",
    "在[low, high)之间生成均匀分布的数字"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "array([2.64932089, 4.78167451, 7.11195067, 3.90634783, 8.86690648,\n       8.48692156, 1.73313319, 6.41664569, 8.79063733, 7.4360877 ])"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 29
    }
   ],
   "source": [
    "np.random.uniform(1, 10, 10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "array([[1.8056582 , 9.60886484, 1.08734758, 8.40955337],\n       [5.67535321, 2.0603951 , 5.7577428 , 7.03324951],\n       [3.101973  , 6.9400552 , 2.04862106, 4.44717637]])"
     },
     "metadata": {},
     "output_type": "execute_result",
     "execution_count": 30
    }
   ],
   "source": [
    "np.random.uniform(1, 10, (3,4))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 实例：对数组加入随机噪声"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制sin曲线\n",
    "x = np.linspace(-10, 10, 100)\n",
    "y = np.sin(x)\n",
    "plt.plot(x, y)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 加入噪声\n",
    "x = np.linspace(-10, 10, 100)\n",
    "y = np.sin(x) + np.random.rand(len(x))\n",
    "plt.plot(x, y)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "pycharm": {
     "is_executing": false
    }
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  },
  "pycharm": {
   "stem_cell": {
    "cell_type": "raw",
    "source": [],
    "metadata": {
     "collapsed": false
    }
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}